The present invention relates to the field of computing resource management, and, more particularly, to resolving conflicts in the management of software resources that are handled by multiple automation managers.
Information technology (IT) systems often employ a variety of automation managers to automate the handling of the system's vast quantity of resources. Many times multiple automation managers oversee a common resource. Conflicts often occur when multiple automation managers are involved with the same resource. This can be true for a software resource of stand-alone computing system and even more so for more complex systems, such as distributed computing environment, autonomic environments, clustered computing environments, virtual computing environments, and the like.
For example, a high-availability automation manager can be configured to check the availability of an application (e.g., software resource) and to triggers recovery actions when an error occurs. A performance manager can monitor the application's performance data and can dynamically adjust application usage based on performance objectives. A provisioning manager can dynamically change systems able to interact with software resources and/or a set of software resources available to interact with. When one automation manager (such as the performance manager) decides to stop an execution of the application, another manager (e.g., a fault recovery one) can detect a “failure” of the software resource and initialize actions to restart that resource. In a worse case, a computing environment can repetitively thrash between two states, as one automation manager is attempting to halt, disable, or stop a resource and another is attempting to ensure the software resource is available.
Many current approaches to resolve these automation manager induced conflicts rely upon peer-to-peer communications between the multiple automation managers, which is not widely supported by many computing systems or environment. Further, communications among automation managers can be difficult in many distributed contexts due to security considerations, such as when these automated managers are positioned on different sides of a security firewall. Other approaches require manual intervention by a user or administrator to resolve conflicts. For example, a user many be required to manually disable (permanently or temporarily) one or more automated automation managers to prevent conflicts. Another approach attempts to establish complex priority rules and situational conditions, which determine which automation manager is to control a software resource is a conflict situation. These priority-based systems can be difficult to administer and adjust, can be resource intensive, and can result in performance delays.